#include "stdafx.h"
#include <windows.h>
#include <string.h>
#include <fstream>
#include <string>
#include <iostream>

using namespace std;

extern HANDLE hSlotExibeDados;
extern LPTSTR mailslotExibeDados;

// Prototipos
BOOL WINAPI MakeSlot(LPTSTR);
BOOL ReadDadoSlot();

HANDLE mutex;
int posicao = 0;

VOID CALLBACK ExibeDados(PVOID lpParam, BOOLEAN TimerOrWaitFired)
{
	HANDLE mutex = CreateMutex(NULL, false, NULL);
	ReadDadoSlot();
}

void FormataSaida(string msg)
{
	cout << msg.substr(8, 6) << " " << msg.substr(0, 1) << " " << msg.substr(2, 6) << " " 
		<< msg.substr(20,8) << " " << msg.substr(14,6)  << endl;
}

void PegaMensagemNoArquivo()
{
	WaitForSingleObject(mutex, INFINITE);
	string linha;
	ifstream arquivo("D:\\ArquivoCircular.txt");

	for(int i = 0; i <= posicao; i++)
	{
		getline(arquivo, linha);
	}
	posicao++;
	if (posicao == 500)
	{
		posicao = 0;
	}
	arquivo.close();
	ReleaseMutex(mutex);
	FormataSaida(linha);
}